package org.suyafei.manager;

import org.suyafei.enums.ShortLinkStateEnum;
import org.suyafei.model.GroupCodeMappingDO;

import java.util.Map;

/**
 * @author 宿某人
 * @Date: 2022/01/07/10:31 上午
 * @Description:
 */
public interface GroupCodeMappingManager {


    /**
     * 查询详情
     * @param mappingId
     * @param accountNo
     * @param groupId
     * @return
     */
    GroupCodeMappingDO findByGroupIdAndMappingId(Long mappingId, Long accountNo, Long groupId);

    /**
     * 新增
     * @param groupCodeMappingDO
     * @return
     */
    int add(GroupCodeMappingDO groupCodeMappingDO);

    /**
     * 根据短链码删除
     * @param shortLinkCode
     * @param accountNo
     * @param groupId
     * @return
     */
    int del(String shortLinkCode, Long accountNo, Long groupId);

    /**
     * 分页查找
     * @param page
     * @param size
     * @param accountNo
     * @param groupId
     * @return
     */
    Map<String, Object> pageShortLinkByGroupId(Integer page, Integer size, Long accountNo, Long groupId);


    /**
     * 更新短链状态码
     * @param accountNo
     * @param groupId
     * @param shortLinkCode
     * @param linkStateEnum
     * @return
     */
    int updateGroupCodeMappingState(Long accountNo, Long groupId, String shortLinkCode, ShortLinkStateEnum linkStateEnum);

    /**
     * 查找数据是否有当前的短链码
     * @param shortLinkCode
     * @param groupId
     * @param accountNo
     * @return
     */
    GroupCodeMappingDO findByCodeAndGroupId(String shortLinkCode, Long groupId, Long accountNo);

    /**
     * 更新短链
     * @param groupCodeMappingDO
     * @return
     */
    int update(GroupCodeMappingDO groupCodeMappingDO);
}
